package com.cskaoyan.controller;

import com.cskaoyan.vo.BaseRespVo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * @author stone
 * @date 2022/10/07 11:10
 */
@RestController
@RequestMapping("upload")
public class UploadController {

    // 请求参数名（input标签的name属性值）仍然和Handler方法的形参名一致
    @RequestMapping("file")
    public BaseRespVo uploadFile(MultipartFile myfile) throws IOException {

        String name = myfile.getName();//请求参数名 input标签的name属性值 → myfile
        String originalFilename = myfile.getOriginalFilename();//原始的文件名
        String contentType = myfile.getContentType();//正文类型 → 当做是文件类型
        long size = myfile.getSize();//文件的大小

        // transferTo 将MultipartFile保存到本地
        // File这个参数 → 指定这个文件保存到什么位置，叫什么名称
        // 保存一个png文件到D:\tmp目录，并且名字叫ligenli.png
        //File file = new File("D:\\tmp", "ligenli.png");
        //File file = new File("D:\\tmp\\ligenli.png");

        File file = new File("D:\\tmp", originalFilename);
        myfile.transferTo(file);

        return BaseRespVo.ok();
    }

    // 请求参数名（input标签的name属性值）仍然和Handler方法的形参名一致
    // 可以使用数组接收多个文件
    @RequestMapping("files")
    public BaseRespVo uploadFiles(MultipartFile[] myfiles) throws IOException {

        for (MultipartFile myfile : myfiles) {

            String originalFilename = myfile.getOriginalFilename();//原始的文件名

            myfile.transferTo(new File("D:\\tmp", originalFilename));
        }


        return BaseRespVo.ok();
    }
}
